The present invention relates to the field of software development, more particularly, to a software development tool for providing user context information to improve message quality at development time.
Poorly written software messages are a very common problem in the software industry, which results in messages with low usability. In many cases, messages (e.g., error messages) do not adequately describe the details of a software problem or the action that should be taken by the user/developer to resolve the problem. For example, messages presented to a user can include text for software error codes, can provide overly technical description of the problem, and can provide poorly translated messages.
From an end-user viewpoint, being presented with software messages ill suited for the user can be exceptionally frustrating. Such error messages are confusing to users attempting to decipher them, provide little guidance to users pertaining to steps that can be taken to resolve an error state and/or prevent it from reoccurring in the future, and generally have a detrimental effect on users' experience with a software application. Another problem with unintelligible error messages is that they do not provide system administrators, software maintainers, and other support personnel with sufficient information to take corrective actions.
An underlying reason that software messages often include difficult to decipher messages is inherent in the software message creation process itself. Software projects are typically decomposed into different discrete tasks or modules, which can be written by different development team members. Code messages are written by module specific developers and often include content tailored for that module. Code modules are tested and refined discretely and then integrated with each other. During integration, many messages are edited, modified, or even added. Besides the module developer, other developers and software testers working on the project also review the produced messages. Development can be cyclic, where module development, integration, and other testing repeat over multiple iterations.
From the above, it can be seen that the message creation process is largely a bottom-up one, where low-level code developers are responsible for the content of software messages that are to be presented to end users. These developers lack information about user context as it pertains to the messages, which are to be presented to and interpreted by end users. From an end-user perspective, messages are presented in a top-down manner. Thus, software messages are often presented to users that refer to low-level modules/concepts, which a typical user should not be expected to understand. This disconnectedness between the message intent and the message content is often a result of developers not having a proper user context for the user presented messages. Stated differently, a typical user is not exposed to (and is not overly concerned with) structural design considerations specific to internal logic that causes a software application to operate. An end-user is instead focused on accomplishing his or her goal through a sequence of interface interactions that are designed to result in the end-goal, which a developer creating user presented messages is often not fully aware of. There is a strong disconnect between these two different viewpoints, the message intent (the purpose of the message) and the message content (the information that is conveyed by the message.
A further challenge exists for software applications that support more than one natural language. Typically, software messages are converted from one language to another by translators who are at least bilingual. These messages are typically translated without context (or with an improper context), which can result in significant translation errors, which further diminishes an overall quality of the software messages. No known software development tools exist that present a message context to a developer/translator who is creating, editing, and/or translating software messages.